We are now consistently calling notify() when a property does change.
With that we can opt out of g_object_set()'s implicit change notifications,
so that notify is only emitted when a property *actually* changes.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2168>
props[PROP_ACTOR] =
g_param_spec_object ("actor", "Actor", "Actor",
CLUTTER_TYPE_ACTOR,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE |
+ G_PARAM_EXPLICIT_NOTIFY);
/**
* StAdjustment:lower:
"Child",
"The child of the Bin",
CLUTTER_TYPE_ACTOR,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
g_object_class_install_properties (gobject_class, N_PROPS, props);
}
"Whether the layout should be vertical, rather"
"than horizontal",
FALSE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StBoxLayout:pack-start:
"Label",
"Label of the button",
NULL,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StButton:button-mask:
"Button mask",
"Which buttons trigger the 'clicked' signal",
ST_TYPE_BUTTON_MASK, ST_BUTTON_ONE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StButton:toggle-mode:
"Toggle Mode",
"Enable or disable toggling",
FALSE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StButton:checked:
"Checked",
"Indicates if a toggle button is \"on\" or \"off\"",
FALSE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StButton:pressed:
"Primary Icon",
"Primary Icon actor",
CLUTTER_TYPE_ACTOR,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StEntry:secondary-icon:
"Secondary Icon",
"Secondary Icon actor",
CLUTTER_TYPE_ACTOR,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StEntry:hint-text:
"Text to display when the entry is not focused "
"and the text property is empty",
NULL,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StEntry:hint-actor:
"An actor to display when the entry is not focused "
"and the text property is empty",
CLUTTER_TYPE_ACTOR,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StEntry:text:
"Text",
"Text of the entry",
NULL,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StEntry:input-purpose:
"Purpose of the text field",
CLUTTER_TYPE_INPUT_CONTENT_PURPOSE,
CLUTTER_INPUT_CONTENT_PURPOSE_NORMAL,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StEntry:input-hints:
"Hints for the text field behaviour",
CLUTTER_TYPE_INPUT_CONTENT_HINT_FLAGS,
0,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
g_object_class_install_properties (gobject_class, N_PROPS, props);
"GIcon",
"The GIcon shown by this icon actor",
G_TYPE_ICON,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StIcon:fallback-gicon:
"Fallback GIcon",
"The fallback GIcon shown if the normal icon fails to load",
G_TYPE_ICON,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StIcon:icon-name:
"Icon name",
"An icon name",
NULL,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StIcon:icon-size:
"Icon size",
"The size if the icon, if positive. Otherwise the size will be derived from the current style",
-1, G_MAXINT, -1,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StIcon:fallback-icon-name:
"Fallback icon name",
"A fallback icon name",
NULL,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
g_object_class_install_properties (object_class, N_PROPS, props);
}
"Text",
"Text of the label",
NULL,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
g_object_class_install_properties (gobject_class, N_PROPS, props);
}
"Password visible",
"Whether the text in the entry is masked or not",
FALSE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StPasswordEntry:show-peek-icon:
"Show peek icon",
"Whether to show the password peek icon",
TRUE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
g_object_class_install_properties (gobject_class, N_PROPS, props);
}
props[PROP_ADJUSTMENT] =
g_param_spec_object ("adjustment", "Adjustment", "The adjustment",
ST_TYPE_ADJUSTMENT,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StScrollBar:vertical:
"Vertical Orientation",
"Vertical Orientation",
FALSE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
g_object_class_install_properties (object_class, N_PROPS, props);
"Fade margins",
"The margin widths that are faded",
CLUTTER_TYPE_MARGIN,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StScrollViewFade:fade-edges:
"Fade Edges",
"Whether the faded area should extend to the edges",
FALSE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StScrollViewFade:extend-fade-area:
"Extend Fade Area",
"Whether faded edges should extend beyond the faded area",
FALSE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
g_object_class_install_properties (gobject_class, N_PROPS, props);
}
"When the vertical scrollbar is displayed",
ST_TYPE_POLICY_TYPE,
ST_POLICY_AUTOMATIC,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StScrollView:hscrollbar-policy:
"When the horizontal scrollbar is displayed",
ST_TYPE_POLICY_TYPE,
ST_POLICY_AUTOMATIC,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StScrollView:hscrollbar-visible:
"Enable Mouse Scrolling",
"Enable automatic mouse wheel scrolling",
TRUE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StScrollView:overlay-scrollbars:
"Use Overlay Scrollbars",
"Overlay scrollbars over the content",
FALSE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
props[PROP_CONTENT_PADDING] =
g_param_spec_boxed ("content-padding",
"Content padding",
"Content padding",
CLUTTER_TYPE_MARGIN,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
g_object_class_install_properties (object_class, N_PROPS, props);
}
"StAdjustment",
"Horizontal adjustment",
ST_TYPE_ADJUSTMENT,
- ST_PARAM_READWRITE));
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY));
/**
* StScrollable:vadjustment:
"StAdjustment",
"Vertical adjustment",
ST_TYPE_ADJUSTMENT,
- ST_PARAM_READWRITE));
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY));
initialized = TRUE;
}
"Slow down factor",
"Factor applied to all animation durations",
EPSILON, G_MAXDOUBLE, 1.0,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StSettings:disable-show-password:
"Scale factor",
"Integer scale factor used for HiDPI scaling",
0, G_MAXINT, 1,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
g_object_class_install_properties (object_class, N_PROPS, props);
"Pseudo Class",
"Pseudo class for styling",
"",
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StWidget:style-class:
"Style Class",
"Style class for styling",
"",
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StWidget:style:
"Style",
"Inline style string",
"",
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StWidget:track-hover:
"Track hover",
"Determines whether the widget tracks hover state",
FALSE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StWidget:hover:
"Hover",
"Whether the pointer is hovering over the widget",
FALSE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StWidget:can-focus:
"Can focus",
"Whether the widget can be focused via keyboard navigation",
FALSE,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StWidget:label-actor:
"Label",
"Label that identifies this widget",
CLUTTER_TYPE_ACTOR,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StWidget:accessible-role:
"The accessible role of this object",
ATK_TYPE_ROLE,
ATK_ROLE_INVALID,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/**
* StWidget:accessible-name:
"Accessible name",
"Object instance's name for assistive technology access.",
NULL,
- ST_PARAM_READWRITE);
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
g_object_class_install_properties (gobject_class, N_PROPS, props);